home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / vb016e / vb016aex.frm < prev    next >
Text File  |  1995-09-06  |  3KB  |  112 lines

  1. VERSION 2.00
  2. Begin Form Form1 
  3.    Caption         =   "VISUAL BASICS #16"
  4.    ClientHeight    =   2205
  5.    ClientLeft      =   2100
  6.    ClientTop       =   1875
  7.    ClientWidth     =   3075
  8.    Height          =   2610
  9.    Left            =   2040
  10.    LinkMode        =   1  'Source
  11.    LinkTopic       =   "Form1"
  12.    ScaleHeight     =   2205
  13.    ScaleWidth      =   3075
  14.    Top             =   1530
  15.    Width           =   3195
  16.    Begin CommandButton Command4 
  17.       Caption         =   "Quit"
  18.       Height          =   375
  19.       Left            =   120
  20.       TabIndex        =   3
  21.       Top             =   1560
  22.       Width           =   2775
  23.    End
  24.    Begin CommandButton Command3 
  25.       Caption         =   "Be owned by PROGMAN.EXE"
  26.       Height          =   375
  27.       Left            =   120
  28.       TabIndex        =   2
  29.       Top             =   1080
  30.       Width           =   2775
  31.    End
  32.    Begin CommandButton Command2 
  33.       Caption         =   "Disown Form 2"
  34.       Height          =   375
  35.       Left            =   120
  36.       TabIndex        =   1
  37.       Top             =   600
  38.       Width           =   2775
  39.    End
  40.    Begin CommandButton Command1 
  41.       Caption         =   "Own Form 2"
  42.       Height          =   375
  43.       Left            =   120
  44.       TabIndex        =   0
  45.       Top             =   120
  46.       Width           =   2775
  47.    End
  48. End
  49. Declare Function SetWindowWord Lib "User" (ByVal hWnd As Integer, ByVal nIndex As Integer, ByVal wNewWord As Integer) As Integer
  50. Declare Function SetFocusAPI Lib "User" Alias "SetFocus" (ByVal hWnd As Integer) As Integer
  51. Declare Function GetFocus Lib "User" () As Integer
  52. Declare Function GetActiveWindow Lib "User" () As Integer
  53.  
  54. Sub Command1_Click ()
  55.     GWW_HWNDPARENT% = (-8)
  56.     X = SetWindowWord(Form2.hWnd, GWW_HWNDPARENT%, Form1.hWnd)
  57.     Form2.Label1.Caption = "Now I'm owned by Form1!  He can't block me!"
  58. End Sub
  59.  
  60. Sub Command2_Click ()
  61.     GWW_HWNDPARENT% = (-8)
  62.     X = SetWindowWord(Form2.hWnd, GWW_HWNDPARENT%, 0)
  63.     Form2.Label1.Caption = "Just an ordinary form again."
  64. End Sub
  65.  
  66. Sub Command3_Click ()
  67.     GWW_HWNDPARENT% = (-8)
  68.     If Command3.Caption = "Be owned by PROGMAN.EXE" Then
  69.     AppActivate "Program Manager"
  70.     SendKeys "%{ }R", -1
  71.     PMhWnd% = GetFocus()
  72.     X% = SetWindowWord(Form1.hWnd, GWW_HWNDPARENT%, PMhWnd%)
  73.     Form1.Caption = "PROGMAN OWNED"
  74.     Command3.Caption = "Be FREE"
  75.     X% = SetFocusAPI(Form1.hWnd)
  76.     Else
  77.     X% = SetWindowWord(Form1.hWnd, GWW_HWNDPARENT%, 0)
  78.     Form1.Caption = "VISUAL BASICS #16"
  79.     Command3.Caption = "Be owned by PROGMAN.EXE"
  80.     End If
  81. End Sub
  82.  
  83. Sub Command4_Click ()
  84.     Unload Form2
  85.     Unload Form1 ' see FORM1.FORM_UNLOAD
  86.     End
  87. End Sub
  88.  
  89. Sub Form_Load ()
  90.     Form2.Show
  91.     Command1.Caption = "Own Form 2"
  92.     Command2.Caption = "Disown Form 2"
  93.     Command3.Caption = "Be owned by PROGMAN.EXE"
  94.     Command4.Caption = "Quit"
  95.     Form2.Label1.Caption = "Just an ordinary form"
  96. End Sub
  97.  
  98. Sub Form_Unload (Cancel As Integer)
  99.     'WHEN UNLOADING, SET OWNERS OF ALL WINDOWS TO 0
  100.     'THIS AVOIDS A CRASH!
  101.     GWW_HWNDPARENT% = (-8)
  102.     X% = SetWindowWord(Form1.hWnd, GWW_HWNDPARENT%, 0)
  103.     X% = SetWindowWord(Form2.hWnd, GWW_HWNDPARENT%, 0)
  104. End Sub
  105.  
  106. Sub makeOwnedWindow (ownedHwnd%, ownerHwnd%)
  107.     '  offset into window structure's parent handle element
  108.     GWW_HWNDPARENT% = (-8)
  109.     X = SetWindowWord(ownedHwnd%, GWW_HWNDPARENT%, ownerHwnd%)
  110. End Sub
  111.  
  112.